Communication systems route voice and data signals between local and remote devices. A communication system may have many switches that are interconnected by different forms of communication media. However, these switching systems are complex and require one or more machines that are designated as a controller. Typically, service providers have switches at various geographical locations and interconnect those switches using various methods, such as T1 or ISDN-PRI.
In one communication system, a separate central controller is connected to each switch and routes calls between devices on the network. This type of communication system requires direct interconnects between the central controller and each switch, and also requires a complex routing algorithm. When a device that is not on the network wants to communicate with a target device on the network in another location, one of the switches will receive the incoming call from the device that is not on the network and the central controller will identify the target device and attempt to route the call to the switch that is connected to the target device. If the external call cannot be completed using one communication path, the system controller attempts to re-route the call via another communications path. However, this sequential re-routing increases the amount of time to complete the call.
It is noted that some communication resources, such as voice mail interface cards and a fax receive cards, are used to receive calls, rather than to connect a call to a target device.
It is a goal of the present invention to provide a simplified method of operating a set of distributed resources that does not use a central controller. Another goal is to reduce the amount of time to complete calls. Yet another goal is to provide an apparatus that performs the simplified method.
To form communication connections in a set of nodes, the set of nodes is arranged so that at least a subset of the nodes form a ring. Each node in the subset of nodes is coupled to first and second neighboring nodes in the subset by a set of inter-node communication connections. An external communication is received at one of the nodes. The external communication requests access to a communication resource of a specified type. The receiving node determines whether it has an available communication resource of the specified type. If not, the following additional steps are performed. A resource request message is sent to the first and second neighboring nodes of the receiving node to request allocation of a communication resource of the specified type. Each of the first and second neighboring nodes determines whether that node has an available communication resource of the specified type. If not, the neighboring node transmits another resource request message to one of its neighboring nodes other than the node from which the resource request message was received. When any node determines that it has an available communication resource of the specified type, a communications path is formed between the receiving node and the communication resource of the specified type via the inter-node communication connections therebetween.
The ring topology and bi-directional simultaneous search methodology provide fault tolerance and improved speed of operation.
In another aspect of the invention, each node has a processor, memory and ports for coupling to the inter-node communication connections. The memory stores a set of procedures including instructions to be executed by the processor that implement the method described above.
In this way, the present invention eliminates the need for a central controller and allows each node to operate independently. This simplified method also reduces the amount of time to complete a call because simultaneous attempts are made to set up the call in at least two directions.